/**
 * Copyright (C), 2015-2019, XXX有限公司
 * FileName: FirstServerHandler
 * Author:   kadibeieun
 * Date:     2019/8/12 15:35
 * Description:
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package unwrapping_sticking.server;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

import java.nio.charset.Charset;
import java.util.Date;

/**
 * 〈一句话功能简述〉<br> 
 * 〈〉
 *
 * @author kadibeieun
 * @create 2019/8/12
 * @since 1.0.0
 */
public class FirstServerHandler extends ChannelInboundHandlerAdapter {

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ByteBuf byteBuf = (ByteBuf) msg;
        System.out.println(new Date() + ": 服务端读到数据 -> " + byteBuf.toString(Charset.forName("utf-8")));

//        // 回复数据到客户端
//        System.out.println(new Date() + ": 服务端写出数据");
//        // 1. 获取数据
//        ByteBuf out = getByteBuf(ctx);
//        // 2. 写数据
//        ctx.channel().writeAndFlush(out);
    }

    private ByteBuf getByteBuf(ChannelHandlerContext ctx) {
        // 2. 准备数据，指定字符串的字符集为 utf-8
        byte[] bytes = "你好，欢迎关注我的微信公众号，《阿凡达的博客》!".getBytes(Charset.forName("utf-8"));
        // 1. 获取二进制抽象 ByteBuf
        ByteBuf buffer = ctx.alloc().buffer();
        // 3. 填充数据到 ByteBuf
        buffer.writeBytes(bytes);
        return buffer;
    }
}